package com.ry.bhwktapp.home.ui

import java.io.File

//TODO also 内置函数的使用 内部持有it  返回类型是str本身
fun main() {
    val  name  ="ZXCVBNMASFGHJKLQWERTYUIOP"
    val  age  =110

    //返回 ="ZXCVBNMASFGHJKLQWERTYUIOP"
    val also = name.also {
        println(it)
    }
    age.also {
        println(it*2)
    }

    //真正的also函数的用法是链式调用
    name.also {
        println("${it.length}")
    }.also {
        println("转换成小写的时候 ：${it.toLowerCase()}")
    }.also {
        println("什么也不做时候：$it")
    }


    //主要应用场景也是file 文件的操作方面
    val file = File("D:\\a.txt")

    //无论怎么操作，最后还是返回当初的那个file对象 匿名函数中做的事情不影响返回原来对象
    val file1 = file.also {
        it.setReadable(true)
        it.setWritable(true)
        println(it.readLines())
        //假设做了很多事情
    }.also {
        it.setWritable(true)
        println(it.readLines())
        //假设做了很多事情
    }.also {
        it.setWritable(true)
        println(it.readLines())
        //假设做了很多事情
    }


}